package com.nextel.project.canje.mvc;

import com.nextel.project.Configuracion;
import com.nextel.project.canje.ControlCanje;
import com.nextel.project.canje.bean.CanjeDetalleBean;
import com.nextel.ui.ODateField;
import com.nextel.ui.OLabel;
import com.nextel.ui.OSoftKey;
import com.nextel.ui.OTextField;
import com.nextel.ui.OUILook;
import com.nextel.ui.custom.OTextFieldDecimal;
import javax.microedition.lcdui.Graphics;
import pe.com.nextel.idioma.IdiomaManager;
import pe.com.nextel.main.MVCAction;
import pe.com.nextel.util.Fecha;

/**
 *
 *  
 */
public class MVCCanjeDatos extends MVCAction {

    private OLabel str, olobservacion, olfield, olfecha;
    private OTextFieldDecimal txtField;
    private OTextField txtObservaciones;
    private ODateField txtFecha;
    private OSoftKey cmdSeguir, cmdAtras;
    private boolean flagForm; // para que no presione dos veces al momento de buscar

    protected void createView() {

        cmdSeguir = new OSoftKey(Configuracion.BOTON_SEGUIR);

        cmdAtras = new OSoftKey(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANCELAR));//"Cancelar"


        formulario.setTitle(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANJE), OUILook.PLAIN_SMALL_TITLE);//"Canje"
        formulario.addSoftKey(cmdSeguir);
        formulario.addSoftKey(cmdAtras);
    }

    protected void createItems() {

        StringBuffer stf = new StringBuffer();
        CanjeDetalleBean detalle = ControlCanje.getInstance().currentCanjeDetalle;

        if (detalle != null) {
            stf.append(detalle.getCodigoArticulo()).append('\n');
            stf.append(detalle.getNombreArticulo());
        }

        str = new OLabel(stf.toString(), OUILook.PLAIN_SMALL_TEXT, formulario.getWidth());

        olobservacion = new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_OBS)+": ", OUILook.PLAIN_SMALL_TEXT);//"Obsv: "
        txtObservaciones = new OTextField(100, OUILook.PLAIN_SMALL_TEXT, OTextField.ANY);

        olfield = new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANT)+": ", OUILook.PLAIN_SMALL_TEXT);//Cant
        txtField = new OTextFieldDecimal(6, OUILook.PLAIN_SMALL_TEXT,(Configuracion.SimboloDecimal).charAt(0));


        if (detalle.getCantidad() != null && !detalle.getCantidad().equals("")) {
            txtField.setText(String.valueOf(detalle.getCantidad()));
        }

        txtObservaciones.allowSpaces(true);

        formulario.add(str);
        formulario.add(olfield);
        formulario.add(txtField, 2, formulario.getComponentCount() - 1, Graphics.LEFT);

        olfecha = new OLabel(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_FEC_VCMTO), OUILook.PLAIN_SMALL_TEXT);//"Fec.Vcmto(DD/MM/YYYY)"
        txtFecha = new ODateField(formulario, olfecha, Graphics.TOP, OUILook.PLAIN_SMALL_TEXT);

        formulario.add(olobservacion);
        formulario.add(txtObservaciones);

 
        flagForm = true;
    }

    public void performAction(OSoftKey c) {
        if (flagForm) {
            flagForm = false;
            String fechaHora = "";
            if (c == cmdSeguir) {

                try {
                    if (txtField.getText().equals("") || txtField.getText().equals(".")) {
                        ControlCanje.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_CANTIDAD), this.showScreen());//"Ingrese La cantidad"
                        flagForm = true;
                        return;

                    }
                    if (txtFecha.getDay().equals("") || txtFecha.getMonth().equals("") || txtFecha.getYear().equals("")) {
                        ControlCanje.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_INGRESE_FECHA), this.showScreen());//"Ingrese la fecha"
                        flagForm = true;
                        return;

                    }
                    try {
                        new com.mot.iden.math.Float((txtField.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));
                        ControlCanje.getInstance().currentCanjeDetalle.setCantidad((txtField.getText()).replace((Configuracion.SimboloDecimal).charAt(0), '.'));
                    } catch (Exception e) {
                        ControlCanje.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_CANTIDAD_INCORRECTA), this.showScreen());//"Cantidad Incorrecta"
                    }

                    fechaHora = txtFecha.getDay() + "/" + txtFecha.getMonth() + "/" + txtFecha.getYear();

                    if (!Fecha.validarFecha(fechaHora)) {

                        ControlCanje.getInstance().showMensaje(IdiomaManager.getInstance().getMensaje(IdiomaManager.JAVA_FECHA_INCORRECTA), this.showScreen());//"Fecha Incorrecta"
                        flagForm = true;
                        return;
                    }

                    ControlCanje.getInstance().currentCabCanje.setNumDocumento("");
                    ControlCanje.getInstance().currentCanjeDetalle.setFecVencimiento(fechaHora);
                    ControlCanje.getInstance().currentCanjeDetalle.setObservaciones(txtObservaciones.getText());

                    ControlCanje.getInstance().mvcMotivoCanje.setBusquedaMVC(ControlCanje.getInstance().getBusquedaMVC());

                    ControlCanje.getInstance().setCurrent(ControlCanje.getInstance().mvcMotivoCanje);

                    destroy();
                } catch (Exception e) {
                    flagForm = true;
                    e.printStackTrace();
                    ControlCanje.getInstance().showMensaje(e + "", formulario);
                }

            } else if (c == cmdAtras) {
                ControlCanje.getInstance().setCurrent(ControlCanje.getInstance().mvcResumenCanje);
                destroy();
            }
        }
    }
}
